package cn.topevery.garden.entity.po;

import cn.topevery.garden.framework.base.BaseEntity;
import hw.topevery.framework.annotation.DbTable;
import hw.topevery.framework.annotation.DbTableField;
import hw.topevery.framework.enums.DbTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.alibaba.fastjson.annotation.JSONField;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.math.BigDecimal;
import org.locationtech.jts.geom.Geometry;
import lombok.Data;
import cn.topevery.garden.entity.serializer.GeometrySerializer;

/**
 * 请假/加班
 */
@Data
@DbTable(tableName = "t_person_duty")
public class PersonDuty extends BaseEntity {
        /**
     *  UUID
     */
    @DbTableField(columnName = "c_entity_id", dbType = DbTypeEnum.VARCHAR)
    public String entityId ;

    /**
     *  用户Id 
     */
    @DbTableField(columnName = "c_user_id", dbType = DbTypeEnum.VARCHAR)
    public String userId ;

    /**
     * 用户名称 
     */
    @DbTableField(columnName = "c_user_name", dbType = DbTypeEnum.VARCHAR)
    public String userName ;

    /**
     * 类型  1 请假 2 加班 
     */
    @DbTableField(columnName = "c_type", dbType = DbTypeEnum.INTEGER)
    public Integer type ;

    /**
     * 开始时间 
     */
    @DbTableField(columnName = "c_begin_date", dbType = DbTypeEnum.TIMESTAMP)
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    public LocalDateTime beginDate ;

    /**
     * 结束时间
     */
    @DbTableField(columnName = "c_end_date", dbType = DbTypeEnum.TIMESTAMP)
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    public LocalDateTime endDate ;

    /**
     * 请假时长  小时
     */
    @DbTableField(columnName = "c_leave_time", dbType = DbTypeEnum.DOUBLE)
    public Double leaveTime ;

    /**
     * 请假理由
     */
    @DbTableField(columnName = "c_content", dbType = DbTypeEnum.VARCHAR)
    public String content ;

    /**
     * 申请时间
     */
    @DbTableField(columnName = "c_req_date", dbType = DbTypeEnum.TIMESTAMP)
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    public LocalDateTime reqDate ;

    /**
     * 审核时间 
     */
    @DbTableField(columnName = "c_audit_date", dbType = DbTypeEnum.TIMESTAMP)
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    public LocalDateTime auditDate ;

    /**
     * 审核人Id 
     */
    @DbTableField(columnName = "c_audit_user_id", dbType = DbTypeEnum.VARCHAR)
    public String auditUserId ;

    /**
     * 审核人 
     */
    @DbTableField(columnName = "c_audit_user_name", dbType = DbTypeEnum.VARCHAR)
    public String auditUserName ;

    /**
     * 审核结果0 待审核 1 通过 2 不通过 
     */
    @DbTableField(columnName = "c_audit_result", dbType = DbTypeEnum.INTEGER)
    public Integer auditResult ;

    /**
     * 审核意见 
     */
    @DbTableField(columnName = "c_audit_content", dbType = DbTypeEnum.VARCHAR)
    public String auditContent ;


}
